1. Field of the Invention
The present invention relates to a technology of coding and decoding moving pictures and, more particularly, to a technology of coding and decoding moving pictures by using motion compensation prediction.
2. Description of the Related Art
The MPEG-4AVC/H.264 standard is known as a typical method for compression coding of moving pictures. In motion compensation according to MPEG-4AVC/H.264, a picture is partitioned into a plurality of rectangular blocks. A picture already coded and decoded is used as a reference picture. Motion from the reference picture is predicted. Motion prediction based on motion compensation is referred to as inter prediction. In inter prediction according to MPEG-4AVC/H.264, a plurality of pictures can be used as reference pictures. For motion compensation, an optimum reference for each block picture is selected from the plurality of reference pictures. A reference index is assigned to each reference picture. A reference picture is identified by the reference index. In a B picture, a maximum of two pictures may be selected from the reference pictures already coded and decoded and may be used for inter prediction. Prediction from one of the two reference pictures is denoted by L0 prediction (list 0 prediction), which is primarily used for forward prediction, and prediction from the other is denoted by L1 prediction (list 1 prediction), which is primarily used for backward prediction.
Bi-prediction, which uses two types of inter prediction, i.e., L0 prediction and L1 prediction, is also defined. In the case of bi-prediction, two predictions are performed. Inter prediction signals from L0 prediction and L1 prediction are multiplied by respective weight factors, and offset values are added to the respective results of multiplication. The resultant signals are superimposed on each other to produce an ultimate inter prediction signal. Typical values of weight factors and offset values used for weighted prediction are defined and coded in units of pictures and for each reference picture in a list. Coding information related to inter prediction defined for each block includes a prediction mode for distinguishing between L0 prediction, L1 prediction, and bi-prediction. Coding information defined for each reference list for a given block includes a reference index identifying a reference picture, and a motion vector indicating the direction and amount of movement of the block. These items of coding information are coded and decoded.
In a moving picture coding scheme in which motion compensation is performed, a motion vector is predicted in order to reduce the code size of motion vectors generated in the blocks. In MPEG-4AVC/H.264, the code size is reduced by taking advantage of strong correlation of a motion vector subject to coding to a motion vector for a neighboring block to derive a motion vector predictor based on prediction from the neighboring block, by deriving a motion vector difference between the motion vector subject to coding and the motion vector predictor, and by coding the motion vector difference.
More specifically, the code size of a motion vector is reduced by deriving a median value from the motion vectors for the neighboring blocks A, B, C and defining the value as a motion vector predictor, and by determining a difference between the motion vector and the motion vector predictor (non-patent document 1). If the shape of a block subject to coding and that of the neighboring block differs as shown in FIG. 48B, the topmost block is defined as a prediction block if there are a plurality of blocks neighboring to the left, or the leftmost block is defined as a prediction block if there are a plurality of blocks neighboring above. If the block subject to coding is partitioned into individual blocks of 16×8 pixels or individual blocks of 8×16 pixels, as shown in FIGS. 48C and 48D, a reference target prediction block is determined for each individual block in accordance with the arrangement of the motion compensation block, as indicated by the void arrows of FIGS. 48C and 48D, instead of deriving a median value from the motion vectors for the neighboring blocks. Prediction from the motion vectors for the determined prediction blocks is then performed.